package demo

import (
	"fmt"
	"github.com/boltdb/bolt"
	"log"
)

func BoltDBTest() {
	db, err := bolt.Open("testBolt.db", 0600, nil)
	if err != nil {
		log.Panic(err)
	}

	//写入数据
	//db.Update(func(tx *bolt.Tx) error {
	//	b1, err := tx.CreateBucketIfNotExists([]byte("b1"))
	//	if err != nil {
	//		log.Info("创建桶失败: ", err)
	//	}
	//	b1.Put([]byte("11111"), []byte("hello world"))
	//	b1.Put([]byte("22222"), []byte("hahhhhhh"))
	//	return nil
	//})

	//读取数据
	db.View(func(tx *bolt.Tx) error {
		b := tx.Bucket([]byte("b1"))
		b.ForEach(func(k, v []byte) error {
			fmt.Println("内部已存在数据: ", string(k), string(v))
			return nil
		})
		getV2 := b.Get([]byte("22222"))
		fmt.Println(string(getV2))
		return nil
	})
}
